Beginn der Aufklärung mit einem ARP-Scan zur Identifizierung von Hosts im lokalen Netzwerk.
192.168.2.107 08:00:27:97:de:db PCS Systemtechnik GmbH
**Analyse:** Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk und identifiziert erfolgreich einen Host mit der IP-Adresse 192.168.2.107. Die MAC-Adresse (08:00:27:97:de:db) und der Hersteller (PCS Systemtechnik GmbH) weisen auf eine VirtualBox VM hin.
**Bewertung:** Das Zielsystem wurde erfolgreich im Netzwerk lokalisiert. Der Hinweis auf VirtualBox liefert ersten Kontext.
**Empfehlung (Pentester):** Konzentriere weitere Scans und Enumerationsschritte auf die IP 192.168.2.107.
**Empfehlung (Admin):** Netzwerk-Monitoring und Segmentierung können die Erkennung erschweren, sind aber Standardmaßnahmen.
Hinzufügen eines Eintrags zur lokalen `/etc/hosts`-Datei zur Vereinfachung der Ansprache des Ziels.
192.168.2.107 universe.hmv
**Analyse:** Die lokale Hosts-Datei wird bearbeitet, um der IP 192.168.2.107 den Hostnamen `universe.hmv` zuzuweisen. Dies ermöglicht die Verwendung dieses Namens anstelle der IP-Adresse in nachfolgenden Befehlen.
**Bewertung:** Eine nützliche Maßnahme zur Verbesserung der Lesbarkeit und Handhabung während des Penetrationstests.
**Empfehlung (Pentester):** Verwende den definierten Hostnamen `universe.hmv` in weiteren Befehlen.
**Empfehlung (Admin):** Keine serverseitigen Maßnahmen erforderlich, da dies eine lokale Konfiguration auf dem System des Testers ist.
Durchführung eines umfassenden Nmap-Scans über alle Ports mit Service-Version, OS-Erkennung und Standard-Skripten.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-27 23:43 CET Nmap scan report for universe (192.168.2.107) Host is up (0.00013s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) | ssh-hostkey: | 256 95:d6:5d:68:a3:38:f7:74:87:b3:99:20:f8:be:45:4d (ECDSA) |_ 256 11:77:31:ae:36:4e:22:45:9c:89:8f:5e:e6:01:83:0d (ED25519) 1212/tcp open lupa? | fingerprint-strings: | GetRequest: | HTTP/1.1 302 FOUND | Server: Werkzeug/2.2.2 Python/3.11.2 | Date: Wed, 27 Mar 2024 22:43:28 GMT | Content-Type: text/html; charset=utf-8 | Content-Length: 207 | Location: /?user=742 | Connection: close | | |Redirecting... |Redirecting...
|You should be redirected automatically to the target URL: /?user=742. If not, click the link. | HTTPOptions: | HTTP/1.1 200 OK | Server: Werkzeug/2.2.2 Python/3.11.2 | Date: Wed, 27 Mar 2024 22:43:28 GMT | Content-Type: text/html; charset=utf-8 | Allow: OPTIONS, HEAD, GET | Content-Length: 0 | Connection: close | Help: | | |
| |Error response | | |Error response
|Error code: 400
|Message: Bad request syntax ('HELP').
|Error code explanation: 400 - Bad request syntax or unsupported method.
| | | RTSPRequest: | | | | |Error response | | |Error response
|Error code: 400
|Message: Bad request version ('RTSP/1.0').
|Error code explanation: 400 - Bad request syntax or unsupported method.
| |_ 1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service : SF-Port1212-TCP:V=7.94SVN%I=7%D=3/27%Time=6604A110%P=x86_64-pc-linux-gnu%r SF:(GetRequest,196,"HTTP/1\.1\x20302\x20FOUND\r\nServer:\x20Werkzeug/2\.2\ SF:.2\x20Python/3\.11\.2\r\nDate:\x20Wed,\x2027\x20Mar\x202024\x2022:43:28 SF:\x20GMT\r\nContent-Type:\x20text/html;\x20charset=utf-8\r\nContent-Leng SF:th:\x20207\r\nLocation:\x20/\?user=742\r\nConnection:\x20close\r\n\r\n< SF:!doctype\x20html>\n\nRedirecting\.\.\. \ SF:nRedirecting\.\.\.
\nYou\x20should\x20be\x20redirected\x20au SF:tomatically\x20to\x20the\x20target\x20URL:\x20/\?user=742\.\x20If\x20not,\x20click\x20the\x20link\.\n")%r(HTTP SF:Options,C7,"HTTP/1\.1\x20200\x20OK\r\nServer:\x20Werkzeug/2\.2\.2\x20Pyt SF:hon/3\.11\.2\r\nDate:\x20Wed,\x2027\x20Mar\x202024\x2022:43:28\x20GMT\r SF:\nContent-Type:\x20text/html;\x20charset=utf-8\r\nAllow:\x20OPTIONS,\x2 SF:0HEAD,\x20GET\r\nContent-Length:\x200\r\nConnection:\x20close\r\n\r\n") SF:%r(RTSPRequest,16C,"\n\n\x20\x20 SF:\x20\x20
\n\x20\x20\x20\x20\x20\x20\x20\x20\n\x20\x20\x20\x20\x20\x20\x20\x20Error\x20response \ SF:n\x20\x20\x20\x20\n\x20\x20\x20\x20\n\x20\x20\x20\x20\x20\ SF:x20\x20\x20Error\x20response
\n\x20\x20\x20\x20\x20\x20\x20\x20 SF:Error\x20code:\x20400
\n\x20\x20\x20\x20\x20\x20\x20\x20Messag SF:e:\x20Bad\x20request\x20version\x20\('RTSP/1\.0'\)\.
\n\x20\x20\x20\ SF:x20\x20\x20\x20\x20Error\x20code\x20explanation:\x20400\x20-\x20Bad\ SF:x20request\x20syntax\x20or\x20unsupported\x20method\.
\n\x20\x20\x20 SF:\x20\n\n")%r(Help,167,"\n\n\x20\x20\x20\x20\n\x20\x20\x20\x20\x20\x20\x20\x20\n\x20\x20\x20\x20\x20\x20\x20\x20Error\x20 SF:response \n\x20\x20\x20\x20\n\x20\x20\x20\x20\n\x20 SF:\x20\x20\x20\x20\x20\x20\x20Error\x20response
\n\x20\x20\x20\x2 SF:0\x20\x20\x20\x20Error\x20code:\x20400
\n\x20\x20\x20\x20\x20\x20 SF:\x20\x20Message:\x20Bad\x20request\x20syntax\x20\('HELP'\)\.
\n\x SF:20\x20\x20\x20\x20\x20\x20\x20Error\x20code\x20explanation:\x20400\x SF:20-\x20Bad\x20request\x20syntax\x20or\x20unsupported\x20method\.
\n\ SF:x20\x20\x20\x20\n\n"); MAC Address: 08:00:27:97:DE:DB (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.13 ms universe (192.168.2.107)
**Analyse:** Der Nmap-Scan (`-sS`, `-sV`, `-A`, `-T5`, `-p-`) identifiziert drei offene TCP-Ports:
**Bewertung:** Hoch. Drei Dienste identifiziert. FTP und SSH sind Standard, erfordern aber Prüfung auf anonymen Zugriff/schwache Credentials. Port 1212 ist besonders interessant: Eine Python-Webanwendung, die auf einem Nicht-Standard-Port läuft und Redirects mit einem `user`-Parameter durchführt. Dies ist ein primäres Ziel für weitere Untersuchungen.
**Empfehlung (Pentester):**
1. Prüfe FTP auf anonymen Login (`ftp universe.hmv`, User `anonymous`).
2. Versuche Standard-Credentials oder Brute-Force gegen SSH (z.B. Benutzer `root`, `admin`, `miwa`, `void` - aus späteren Logs).
3. Konzentriere dich auf Port 1212: Untersuche die Python-Webanwendung mit Nikto, Gobuster und manueller Analyse. Analysiere den `user`-Parameter im Redirect und die generelle Funktionsweise der Anwendung.
**Empfehlung (Admin):**
1. Stelle sicher, dass FTP anonymen Zugriff verhindert und nur für benötigte Benutzer aktiviert ist.
2. Härte SSH (Keys, Fail2ban, kein Root-Login).
3. Untersuche die Notwendigkeit und Sicherheit der Python-Anwendung auf Port 1212. Warum läuft sie auf diesem Port? Ist Authentifizierung implementiert?
Gefilterte Nmap-Ausgabe zur Übersicht der offenen Ports.
21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) 1212/tcp open lupa?
**Analyse:** Die gefilterte Ausgabe zeigt die drei offenen Ports: 21 (FTP), 22 (SSH) und 1212 (Unbekannt/Python-Webapp).
**Bewertung:** Bietet eine schnelle Referenz der offenen Ports.
**Empfehlung (Pentester):** Untersuche alle drei Ports, beginnend mit dem ungewöhnlichsten (1212).
**Empfehlung (Admin):** Überprüfe die Notwendigkeit und Konfiguration aller drei Dienste.
Durchführung eines Nikto-Scans gegen die Webanwendung auf Port 1212.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.107 + Target Hostname: 192.168.2.107 + Target Port: 1212 + Start Time: 2024-03-27 23:45:57 (GMT1) --------------------------------------------------------------------------- + Server: Werkzeug/2.2.2 Python/3.11.2 + /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ + Root page / redirects to: /?user=986 + No CGI Directories found (use '-C all' to force check all possible dirs) + OPTIONS: Allowed HTTP Methods: OPTIONS, HEAD, GET . + /cfg/CFGConnectionParams.txt: Caremark Carestream config file found. May include account information and host data. + 8102 requests: 0 error(s) and 4 item(s) reported on remote host + End Time: 2024-03-27 23:46:18 (GMT1) (21 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
**Analyse:** Nikto scannt die Python-Anwendung auf Port 1212:
**Bewertung:** Mittel bis Hoch. Fehlende Header sind weniger kritisch. Der Redirect mit `user`-Parameter ist sehr interessant. Die gefundene Konfigurationsdatei `/cfg/CFGConnectionParams.txt` ist ein potenziell sehr wichtiger Fund, falls sie zugänglich ist und sensible Daten enthält.
**Empfehlung (Pentester):**
1. Versuche, die Datei `/cfg/CFGConnectionParams.txt` direkt abzurufen (`curl http://universe.hmv:1212/cfg/CFGConnectionParams.txt`).
2. Untersuche den `user`-Parameter im Redirect. Kann er manipuliert werden? Gibt es IDOR?
3. Führe weitere Verzeichnis-Scans (Gobuster etc.) durch.
**Empfehlung (Admin):**
1. Implementiere die fehlenden Security Header.
2. Stelle sicher, dass Konfigurationsdateien nicht über den Webserver zugänglich sind.
3. Überprüfe die Logik des `user`-Parameters auf Sicherheitsprobleme.
Manuelle Untersuchung der Webanwendung und Analyse des Hintergrundbildes.
http://192.168.2.107:1212/?user=887 Server Werkzeug/2.2.2 Python/3.11.2
background: url('static/universe.jpg
--2024-03-28 00:03:11-- http://192.168.2.107:1212/static/universe.jpg Verbindungsaufbau zu 192.168.2.107:1212 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK Länge: 218175 (213K) [image/jpeg] Wird in universe.jpg gespeichert. universe.jpg 100%[======================================>] 213,06K --.-KB/s in 0s 2024-03-28 00:03:11 (427 MB/s) - universe.jpg gespeichert [218175/218175]
**Analyse:** 1. Durch manuelles Browsen wird bestätigt, dass die Anwendung auf Anfragen wie `/?user=887` reagiert. 2. Im Quellcode (oder CSS) wird entdeckt, dass die Datei `/static/universe.jpg` als Hintergrundbild verwendet wird. 3. Die Bilddatei wird mit `wget` erfolgreich heruntergeladen.
**Bewertung:** Standard-Enumeration. Das Herunterladen des Bildes ist wichtig, da Bilder oft für Steganographie verwendet werden.
**Empfehlung (Pentester):** Analysiere die heruntergeladene Datei `universe.jpg` mit Steganographie-Tools (`strings`, `exiftool`, `steghide`, `stegseek`).
**Empfehlung (Admin):** Keine direkten Maßnahmen erforderlich.